home *** CD-ROM | disk | FTP | other *** search
- System 4.1 Programmers' Notes (Part 1 of 2, 25K)
-
- System 4.0 to System 4.1 Change History
-
- This document outlines developer visible changes to the System Tools
- disk 2.0 and Utilities disk 2.0. This includes changes to System 4.1 and
- Finder 5.5 and related files, and is a summary based on engineers' release
- notes. This information is in no way guaranteed to be accurate or
- complete.
-
- Copyright Apple Computer, Inc. 1987 All Rights Reserved.
-
- Part 1 of 2
-
- System Tools:
-
- TeachText
- No Changes.
-
- System Folder:
-
- AppleTalk ImageWriter
- Took out Control Panel and KeyCaps from installer script.
-
- Clipboard File
- No changes.
-
- Easy Access
- Easy Access is a new file in your System Folder containing two
- features, "sticky keys" and "mouse keys." These features
- assist people with disabilities who have difficulty typing using
- both hands on the keyboard, or manipulating the mouse. And
- they're useful to anyone who wants to be able to use the
- keyboard one-handed, or make very fine movements of the
- pointer with better control. See the 'Read Me' file on the
- System Tools disk.
-
- Finder
- Weird case of address error when opening trashed resource file
- Copy hang in low FCB situation
- Region handles (8) allocated open opening a window are
- deallocated (rather than leaving 160 bytes hanging)
- Adjusts a window, made large on a 12"+ screen, to a reasonable
- size when opened on a smaller screen
- Handles case of a subfolder of an identical name moved to same
- level
- TextEdit highlighting now sets ColorInvert for InvertRect calls
- Copy get-info comments for two-forked files
- Copy locked bits correctly
- Duplicate sometimes renames buried files
- Center dialogs/alerts on larger screens
- Handle resource errors so large desktop files don't appear
- Load SICNs on boot disk eject so disk swaps are cut back; also
- preload fat trashcan.
- Auto-watch disabled for a couple new certain cases when DAs
- are brought up.
- Disable autowatch during MenuKey and GetNext Event because DA
- may be called.
- Copy comments on second fork rather than first so comment
- field won't be wiped by second fork SetCatInfo; skip info setting
- on first fork (no longer needed); also copy icons with second
- fork (minor - might as well delay this).
- Fixed bug on duplicate which trashed data fork of file; we don't
- exit our InputLoop due to a TMFOErr if we have freed up FCBs;
- we loop opening both file forks even if we run out of space.
- LookUpName no longer kills memory allocation 0 when passed a
- nil. It will not produce conflicts with gfiles in HFS directories
- which have dirIDs of -1 (invalid)
- PreCheck call to PFOFldrBuried for HFS -> trash moves was
- bogus because stack frame was not set up with HVolInfo.
- Delayed this to Preflight return. (this was causing a DIV0 error
- in some cases).
- Fixed incest check in Preflight (PFOMarkBuried)
-
- General
- Includes Desktop pattern, Rate of Insertion Point Blinking, Menu
- blinking, Time set, Date set, set Ram cache and speaker volume
- for Control Panel.
-
- ImageWriter
- Took out Control Panel and KeyCaps from installer Script.
-
- Key Layout
-
- Keyboard
- Control Panel extension to set Key Repeat Rate, and Delay Until
- Repeat for keyboard
-
- Laser Prep
- New for 4.0 LaserWriter Driver.
-
- LaserWriter
- Version 4.0 of LaserWriter software introduces several
- enhancements you'll find when you choose Page Setup. For an
- explanation of the original features, see "More About Printing"
- in your LaserWriter manual. For new features, see the Read Me
- document on the System Tools disk.
-
- Change Summary:
- Fixed problem in title of window when printing catalog from
- Finder.
- Fixed problem printing icons from the finder.
- Fixed problem in line layout when more than one systel appears
- in a single line at the same time.
- Fixed a layout problem when using Helvetica Narrow.
- Fixed a problem calculating zoom range values in Page Setup
- dialog.
- Fixed patterns so theat they invert correctly when white on
- black is selected in Page Setup Preferences dialog.
- Fixed problem with super and subscripted text.
- A bug in rotated patterns on 3rd party printers has been fixed.
- Smooth4 fixed to take 1 bit wide bitmaps.
- Stretch operator also fixed for imaging bitmaps at various
- scalings
- Fixed cover page to use the correct font so that line overlaps do
- not occur.
- Fixed problem with flat ovals.
- More rigorous test for memory full problems and adjustment of
- buffer allocation if memory is low.
- Eliminated output control calls if an error exists. Clean up after
- an error occurs should be faster.
- PostScript Error causes an abort to occur so that problems
- clean up much faster.
- Fixed PostScript-in-Handle comment call.
- The LaserWriter attempts to do its own line layout with what it
- suspects are line printer widths. Printing of text should be
- much faster.
- Added several new features to the dialogs.
- INSC resource in the LaserWriter is changed so that it installs
- only LaserWriter and LaserPrep. It does not install Chooser,
- Control Panel, or FONTs as the 3.3 driver used to.
- INSC resource on the system tools disk is changed so that
- it will install Times, Courier, and Helvetica version 2 FONDs.
- These new FONDs have correct widths for condensed and
- extended styles so that these styles should work correctly in
- new applications on a Mac+.
- Bitmap stretch in landscape mode fixed.
- Line layout has been completely changed again so that an entire
- line of text is buffered internally before it is sent to the
- printer. Then line layout is performed over the entire string
- rather than just a piece of it.
- Driver now downloads PostScript fonts even is that don't have
- corresponding FONDs to go with them.
- Bitmap printing now works a little differently. Bitmaps are
- now made to take the fastest path possible.
- A problem which sometimes resulted in a Crash when the
- system FOND was purged has been fixed. The system FOND is
- now never purged.
- A problem in lines where multiple fonts and symbol characters
- occur at the same time did not print some of the symbol
- characters. This has now been fixed.
- B5 page size is now fixed to give the correct dimensions.
- These meet Adobe's specifications for B5 paper size.
- All carriage return characters in all fonts are forced to zero
- width for text measure
- Wide Margins/Narrow Margins selection in Options Dialog now
- work properly
- Added another option feature which allows users to select
- PostScript style bitmap stretching or Macintosh style since
- they are different. This option also disable smoothing when
- PostScript style is selected.
- Dialog windows and Alerts are now centered on screen
- independent of screen size.
- The number of fonts which can be used in a system while
- printing has been increased from approximately 150 to 32767 or
- more, although the system itself will allow only about 500
- families.
- A problem printing strings ending with carriage return
- characters has been fixed. This was most noticeable in
- applications with an extra byte appearing at the end of some
- text strings.
- If shrink by 4 percent is selected (better bitmap printing) is
- selected, the image is now centered on the page.
- Fixed problem with font substitution line layout.
- Driver no longer leaves around an orphan handle after the printer
- was reset following a re-initialization dialog. The crash
- occurred if the name of the printer was extra long (more than
- 15 characters).
- Options have been reworked to make them more compact and
- easier to use.
- Fixed problem with rectangles, round rectangles, ovals and arcs
- when drawn in quadrants other than the positive quadrant. Most
- documents never encounter any other area.
- Fixed problem downloading third-party fonts.
-
- Monitors
- New this release. To support multiple video display modes and
- monitors on Macintosh II.
-
- Mouse
-
- Scrapbook File
- No changes
-
- Sound
- Control panel extension to support new sound on Macintosh II.
-
- Startup Device
- Control Panel extension to select which SCSI device to boot
- from on Macintosh II and Macintosh SE.
-
- System
-
- QuickDraw
- The 4.1 System file contains a ROM patch to the DrawPicture
- trap which allows pictures created by Color QuickDraw
- (version 2 pictures) to be played back on 128K and newer
- ROMs. If this patch is not present, version 2 pictures will be
- displayed as blank areas.
- There are several new QuickDraw features which are not
- present in older versions. These include RGB colors, new
- transfer modes, pixel patterns (PixPats), pixel maps
- (PixMaps), and "highlight" mode. Some of these, such as
- highlight mode, are irrelevant on a black and white display
- and are ignored. The others must be emulated as best as the
- capabilities of B/W QuickDraw allow. In general, the results
- will be the same as when using Color QuickDraw to draw into
- an old GrafPort on a 1-bit screen.
-
- Calls to RGBForeColor and RGBackColor are emulated by calls
- to ForeColor and BackColor. The supplied RGB value is
- converted to one of the eight predefined colors in B/W
- QuickDraw: Black, White, Red, Green, Blue, Cyan, Magenta,
- and Yellow. The selection is based on whether the R, G or B
- values are greater or less than 50%. This applies only to
- explicit calls to RGBForeColor and RGBackColor, not all color
- information. Note that pictures containing this information
- will print in color on the ImageWriter II.
-
- Pixel patterns cannot in general be displayed with B/W
- QuickDraw, since they can be of arbitrary sizes. However,
- PixPats contain within them a "1-bit" pattern, which has the
- same format as an old style QuickDraw pattern. The designer
- of the PixPat can set this field to a representation of the
- PixPat suitable for display on old machines; if not expressly
- initialized this field contains a 50% gray pattern. An
- exception to this rule is dithered RGB patterns created by
- MakeRGBPat. Although these patterns contain full RGB
- information, this cannot be used to set colors, as this can
- only be done via ForeColor and BackColor, not by setting a
- gray-level pattern. Therefore, these patterns are
- translated to one of eight gray-level patterns, based on the
- luminance calculated form the RGB value in the pattern. This
- luminance is calculated in the YIQ color model, the same
- model used when the gray-scale option is selected in the
- Apple video driver.
-
- PixMaps present a similar problem to RGB patterns: there is
- no way to make use of the color information encoded in them.
- These PixMaps are converted into old-style BitMaps by
- mapping all the colors in them to either white or black,
- depending on whether the average of the R, G and B values
- exceeds or falls below a 50% gray level. This results in a
- "high-contrast" rendition of the image.
-
- The new, arithmetic transfer modes defined by Color
- QuickDraw are mapped into "representative" old transfer
- modes. The mapping used is the same as that used by Color
- QuickDraw when drawing in one-bit GrafPorts.
-
- There is one other issue regarding new pictures which has
- nothing to do with what is in them: their size. Pictures
- containing 8-bit PixMaps tend to be very large, in the
- vicinity of 100K or more. Many programs (notably MacWrite)
- do not handle pictures larger than 32K in their data
- structures and so are fundamentally incompatible with large
- pictures. Others run into problems with memory
- management when whacking 100K pictures to play around
- with before. If large PixMaps (such as screen dumps) are not
- used, however, version 2 pictures are only slightly larger
- than their version 1 equivalents, and should not break any
- application that handles version 1 pictures correctly. Note
- that it has been possible to have pictures larger than 32K
- since the 128K ROM was released, but up until now it's been
- very difficult to produce a picture that large.
-
- Fixed bug where color table was freed even if there wasn't
- one.
- ADBS
- Keyboard ADB Service Routine Installer
- Installs keyboard service routine data: loads and locks the
- KMAP and KCHR resources and updates the ADB Table.
- 'ADBS' (2, Locked) [262]
- KMAP 0 is used as default if correct one can't be found
- Keyboard is flushed of messages on exit
- DRVR
- AppleTalk Drivers Version 48
- Version 48 of the AppleTalk drivers contains significant
- enhancements over the current version (40 in the MacPlus
- ROMs, and 41 in system file 3.2). These enhancements
- include new calls and additional resources (e.g., all
- dynamic sockets can be opened simultaneously; more than
- one NBP request can be outstanding at any one time).
- These drivers are used by the AppleShare server. We
- envision these drivers to be used in place of the MacPlus
- ROM drivers in the two circumstances: (1) where one or more
- of the new calls is required and (2) in servers where
- additional resources are needed. These new drivers are
- completely compatible with the MacPlus ROM drivers, and
- can be used in any situation where the ROM drivers were
- used previously.
- The developer should be aware however that use of these
- drivers on a MacPlus or 512Ke will result in the loss of
- about 11K of system heap, since they completely replace
- the ROM drivers and since more memory is required to
- provide the additional resources. This may require the
- system heap to be grown, depending on the application.
- On an original ROM 512K Mac, these new drivers can be
- placed in the system file and will load on the first _Open
- call. On a MacPlus or 512Ke, however, ROM drivers
- supersede those in the system file, so the new drivers
- must be loaded in some other method.Please contact APDA for
- complete information on AppleTalk Changes.
- 'DRVR' (13, ".Alarm Clock", Purgeable) [3954]
- Updates correctly when control panel changes time cycle.
- Won't toggle AM/PM unless user does so.
- Calls IUGetIntl instead of INTL resource with id=O.
- Changed file Clock.a - Special case Mac II ROMs to update
- flashing apple in Menu correctly.
- 'DRVR' (14, ".Key Caps", Purgeable) [2250]
- Added Saratoga resource to Key Layout file.
- 'DRVR' (15, ".Chooser", Purgeable) [9094]
- Credit no longer replaces user name
- Added a strategic HNoPurge to prevent desktop resource
- form getting purged at an inopportune time (very
- unlikely).
- 'DRVR' (16, ".Find File", Purgeable) [9250]
- There is a new feature in the Find File desk accessory.
- Once Find File locates a file with the name you've
- specified, you can select the file and choose Move to
- Desktop from the Find File menu. The file will then
- appear on your desktop.
- As long as the file stays on the desktop when you're not
- working on it, you can use the Put Away command to put
- it back exactly where it came from. Or you can put away
- the file yourself (in any window or folder).
-
- Change Summary:
- MoveToDesktop command added. This command moves the
- currently selected file in the list of found files to the
- Finder's desktop, as if the user had dragged it there. The
- file is also deleted from the list of found files. The file
- can be moved back to its original folder by selecting the
- Finder's PutAway menu command.
- It is no longer possible to edit text while Find File is
- searching.
- The Cut and Copy commands no longer destroy the desk
- scrap when no text is selected.
- Disable Move To Desktop if we are running with
- AppleShare server active.
- 'DRVR' (17, ".Scrapbook", Purgeable) [2944]
- 'DRVR' (18, ".Control Panel", Purgeable) [4612]
- The ram cache arrows and size indicators do not appear if
- the control panel is running under switcher or twitcher.
- A reset pRAM feature has been added. Since the battery
- cannot be unplugged from the system in the MacII or Mac
- SE, recover from bad pRAM settings can not be solved in
- the usual way. As a way of "unpluging" the battery, a
- power feature has been added to the control panel. It is
- intended to be used only in connection with assistance
- from Apple"s tech support people.
- Access to this feature is made by holding down the Shift,
- Command, and Option key while launching the control
- panel. If the machine is either a Mac SE or a MacII, then a
- dialog will appear informing the user of what is about to
- happen. If the user chooses to continue, the pram validity
- byte is trashed and upon restart the pRAM will be reset
- to its default values. The clock/calender settings are not
- affected.Update of pram's desktop bit.
- Double clicking in the 'mini desktop' now save the edited
- ppat to the ppt# resource without updating the desktop.
- Single clicks still update the desktop.
- DSAT
- 'DSAT' (2, SysHeap, Locked) [1200]
- Loaded by the script manager when the Initialization
- Resources are executed. These used to be INIT 2 but were
- moved for the Script Manager. The Shutdown alert has
- also been added.
- FKEY
- 'FKEY' (3, Purgeable) [612]
- Function Key 3 (Command-Shift-3) -- Creates a
- MacPaint document consisting of a snapshot of the screen.
- Now checks for bit depth of screen. Will not snapshot if
- depth <>1.
- Uses the first entry int the DeviceList as the screen to
- snapshot instead of using the low memory global
- scrnbase.
- INIT
- Moved HD20 startup alert here from the boot table.
-
- Removed the HD20 Startup alert. It no resides in the user
- alert table.
- 'INIT' (0, SysHeap, Locked) [222]
- Changed INIT o to have precisely the same header is
- historical versions. Some Apple applications and possibly
- other depend on subtle, undocumented local variables
- stuffed into the INIT=O header. Some Apple applications
- have been trashing KeyTrans, causing this ugly behavior.
- Major changes in this software:
- Added new meta-number for keyboard script toggling.
- Replaced AppScript global and environment verb with Last
- Script.
- Removed NewBufPtr call in untweaked version of
- initialization code.
- Keyboard and DSAT loading is no longer dependent on the
- ScriptManager, since we can use ExpandMem fields.
- Key1Trans and Key2Trans now only depend on the
- KeyTrans trap: each is otherwise self-contained. They
- now function properly at INIT 31 time.
- DSAT 2 (used to be DSAT 1) now is loaded by PTCH 0 to
- fix Startup code bug.
- 'INIT' (1, SysHeap, Locked) [222]
- These use to contain the keyboard translation hooks and
- would append themselves onto the system when they were
- first executed by storing pointers into themselves in low
- memory globals (Key1Trans and Key2Trans). They still
- use these hooks, but no longer contain the keyboard
- translation code. This code has now been moved into the
- ROM (into the patch code for older machines) and can be
- accessed via the _KeyTrans trap. The hooks in these
- resources now just copy the arguments and call the trap.
- This was done so that the older machines would use the
- new keyboard mechanism, which is much better than the
- old one.
- 'INIT' (13, SysHeap, Locked) [256]
- This is the patch for BlockMove and OpenResFile
- 'INIT' (2, Locked) [5042]
- This resource contains the code for the Script Manager
- and the Roman Interface System. When it is executed the
- first time, it allocates the global storage for the Script
- Manager and sets up the script environment and the
- _ScriptUtil trap. Other script interface systems plug into
- this environment by storing a pointer in the Script
- Manager globals. This resource is also responsible for
- loading the user alert table, DSAT 2, which it replaced.
- 'INIT' (22, SysHeap, Purgeable, Locked) [276]
- Opens MPP out of the file AppleTalk in the System Folder.
-
- Change Summary:
- Guarantee 16k in sys heap if doing open.
- 'INIT' (3, "Q", SysHeap, Locked) [580]
- Patch code which supports the MiniFinder launching as
- well as "SubLaunch" of an application from another.
- The Shutdown calls used to do an UnloadScrap before
- unmounting and ejecting the disks. This was causing
- minor problems in the Finder, since it would require
- inserting the disk if it was not in the machine. Since the
- Clipboard File is ignored when you re-boot, there is no
- reason to write it out anyway.
- 'INIT' (30, Locked) [318]
- Installs the necessary mouse tracking code for Mac Plus.
- Uses 'mcky' mouse tracking bytes.
-
- 100,102,200,202,300,302,500,502,600,602,700,702
-